<?php
/**
 * Array 数组辅助函数扩展
 * 
 * @desc most suitable for JSON API
 * @version 1.0.0 
 * @author  Jason
 * @date    2017年5月15日 下午6:09:27
 */

defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * 扩展 CodeIgniter Array Helpers
 *
 * @package		CodeIgniter
 * @subpackage	Helpers
 * @category	Helpers
 * @author		EllisLab Dev Team
 * @link		https://codeigniter.com/user_guide/helpers/array_helper.html
 */

// ------------------------------------------------------------------------

if ( ! function_exists('arrayColumn'))
{
	/**
	 * 一纬数组取多列
	 *
	 * @param	array	$itemData	一维数组，至少是一维数组，也可能是多维哦
	 * @param	array	$columns	栏位数组
	 * 
	 * @version 1.1.0
	 * @desc    按给定列的顺序输出
	 *
	 * @return	array
	 */
	function arrayColumn($itemData, $columns)
	{
		$retData = array();
// 		foreach($itemData as $key => $value) {
// 			if (in_array($key, $columns)) {
// 				$retData[$key] = $value;
// 			}
// 		}
		// 按给定列的顺序输出
		foreach($columns as $key) {
			$retData[$key] = array_key_exists($key, $itemData) ? $itemData[$key] : '';
		}
		
		return $retData;
	}
}

// ------------------------------------------------------------------------

if ( ! function_exists('arraysColumn'))
{
	/**
	 * 二维数组取多列
	 *
	 * @param	array	$listData	二维数组，至少是二维数组，也可能是多维哦
	 * @param	array	$columns	栏位数组
	 *
	 * @return	array
	 */
	function arraysColumn($listData, $columns)
	{
		$retData = array();
		foreach($listData as $key => $itemData) {
			$retData[$key] = arrayColumn($itemData, $columns);
		}
		
		return $retData;
	}
}

// --------------------------------------------------------------------

if ( ! function_exists('arrayFieldAss'))
{
	/**
	 * 数组值替换不同的KEY
	 *
	 * @param	array	$itemData	一纬数组
	 * @param	array	$mapper 	映射器，key-value数组，key源键值 value目标键值
	 *
	 * @return	array
	 */
	function arrayFieldAss($itemData, $mapper)
	{
		foreach($mapper as $key => $value) {
			$itemData[$key] = empty($itemData[$value]) ? "" : $itemData[$value];
		}
		
		return $itemData;
	}
}

// --------------------------------------------------------------------

if ( ! function_exists('arraysFieldAss'))
{
	/**
	 * 数组值替换不同的KEY
	 *
	 * @param	array	$listData	二纬数组
	 * @param	array	$mapper 	映射器，key-value数组，key源键值 value目标键值
	 *
	 * @return	array
	 */
	function arraysFieldAss($listData, $mapper)
	{
		$ret = array();
		foreach($listData as $key => $itemData) {
			$ret[$key] = arrayFieldAss($itemData, $mapper);
		}
		
		return $ret;
	}
}

// --------------------------------------------------------------------

if ( ! function_exists('strpos'))
{

}
